﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ControlAcceso.Dominio;
using ControlAcceso.Persistencia;
namespace ControlAcceso.Interfaz.CuentasCLientes
{
    public partial class RegistrarCliente : Form
    {
        private CuentasClientes parent;
        private VerCliente parentVerCliente;

        //Nuevo cliente
        public RegistrarCliente(CuentasClientes parent)
        {
            this.parent = parent;
            InitializeComponent();
        }

        //Modificar Cliente
        public RegistrarCliente(CuentasClientes parent,VerCliente formularioVerCliente,Dominio.Cliente clienteAModificar)
        {
            this.parent = parent;
            this.parentVerCliente = formularioVerCliente;
            InitializeComponent();
            cargarCampos(clienteAModificar);
        }

        private void cargarCampos(Dominio.Cliente clienteAModificar)
        {
            this.txtApellido.Text = clienteAModificar.Apellido;
            this.txtNombre.Text = clienteAModificar.Nombres;
            this.txtTelefono.Text = clienteAModificar.Telefono;
            this.txtDireccion.Text = clienteAModificar.Direccion;
            this.txtDocumento.Text = Convert.ToString(clienteAModificar.Documento);
            this.txtEmail.Text = clienteAModificar.Email;
            this.txtInformacionAdicional.Text = clienteAModificar.InformacionAdicional;
        }
       
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                Dominio.Cliente cliente = new Dominio.Cliente(txtNombre.Text, txtApellido.Text, (String.IsNullOrEmpty(txtDocumento.Text))? 0 : Convert.ToInt32(txtDocumento.Text), txtDireccion.Text, txtTelefono.Text, txtEmail.Text, labelInfAdicional.Text);
                IClienteDao dao = ClienteMock.getInstance();
                dao.guardarOModificarCliente(cliente);
                this.Close();
            }
            catch (Exception c)
            {
                MessageBox.Show(c.Message, "Atención", MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void RegistrarCliente_FormClosing(object sender, FormClosingEventArgs e)
        {
            if(this.parentVerCliente!=null)//si se modifica el cliente
                parentVerCliente.cargarCampos(ClienteMock.getInstance().getClientePorDocumento(Convert.ToInt32(txtDocumento.Text)));

            parent.refrescarGrilla();
        }

        private void RegistrarCliente_Load(object sender, EventArgs e)
        {

        }

    }
}
